package com.ruoyi.nucleic.service.impl;

import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import com.ruoyi.nucleic.domain.User;
import com.ruoyi.nucleic.dto.RegisterDto;
import com.ruoyi.nucleic.mapper.UserMapper;
import com.ruoyi.nucleic.service.IUserService;
import org.springframework.stereotype.Service;

@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IUserService {
    @Override

    public void register(RegisterDto RegisterDto) {
//        String mobile = RegisterDto.getMobile();
//        Integer regChannel = RegisterDto.getRegChannel();
//        String smsCode = RegisterDto.getSmsCode();
//        // 1.参数校验使用JSR 303 完成
//        // 2.拼接业务键，去redis中获取短信验证码，进行校验
//        String redisKey = String.format(RedisSmsConstants.REDIS_REGISTER_PHONE_KEY, mobile);
//        Object obj = redisTemplate.opsForValue().get(redisKey);
//        // 2.1.如果短信验证码为空，那么跑出异常
//        AssertUtil.isNotNull(obj, GlobalExceptionCode.CODE_IS_NULL_ERROR);
//        // 2.2.判断短信验证码是否正确
//        RedisSmsDto redisSmsDto = (RedisSmsDto) obj;
//        AssertUtil.isEquals(smsCode, redisSmsDto.getCode(), GlobalExceptionCode.CODE_ERROR);
//        // 3.根据手机号查询用户信息
//        User user = selectUser(mobile);
//        // 3.1.判断用户是否已注册
//        AssertUtil.isNull(user, GlobalExceptionCode.USER_EXISTED_ERROR);
//        // 4.保存login
//        JSONResult jsonResult = saveLogin(RegisterDto);
//
//        // 4.1.断言jsonResult是否成功
//        AssertUtil.isTrue(jsonResult.isSuccess(), GlobalExceptionCode.USER_SAVE_ERROR);
//        // 4.2.断言ID是否为null
//        AssertUtil.isNotNull(jsonResult.getData(), GlobalExceptionCode.USER_SAVE_ERROR);
//        // 4.3.得到id
//        Long loginId = Long.valueOf(jsonResult.getData().toString());
//        // 5.保存user相关表
//        // 5.1.保存用户信息
//        Long userId = saveUser(loginId, RegisterDto);
//        // 5.2.保存用户基本信息
//        initUserBaseInfo(userId, regChannel);
//        // 5.3.保存用户账号信息
//        initUserAccount(userId);
        
    }
}
